<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //实现一个函数createCounter，接受一个初始值作为参数，
      //返回一个新的函数，每次调用该函数返回一个递增的数字，初始值为createCounter函数的参数，
      //但是当调用该函数时传入一个参数，会将计数器的值重置为传入的参数。
      //判断有数值传入的时候用传入的数值累加，没有数值传入的时候用初始值累加
      const createCounter = (num1) => {
        return function (num2) {
          if (num2 !== undefined) {
            num1 = num2
            num1++
          } else {
            num1++
          }
          return num1
        }
      }
      const counter = createCounter(5)
      console.log(counter())
      console.log(counter(10))
      console.log(counter())
      console.log(counter(8))
      console.log(counter(0))
    </script>
  </body>
</html>
